Views Layer
The views
layer contains main views, layouts, and context providers
Details
- 📁 Absolute Path:
@v
- 📁 Folder Location:
src/views
Layer Import and Usage Rules
Action | base | components | libs | modules | views | app | services |
---|---|---|---|---|---|---|---|
📥 Can Import From | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
📤 Can Export To | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
Key:
- ✅ Allowed: The layer can import from or export to the specified layer.
- ❌ Not Allowed: The layer cannot import from or export to the specified layer.
The views
layer contains main views, layouts, and context providers for the application. Each view represents a specific page or screen of the application and is composed of UI components from the modules
layer. The views
layer is dependent on the modules
layer and can import modules to render the user interface.
1. Purpose of the views
Layer
The views
layer is responsible for:
- Defining the main views of the application
- Composing UI components from the
modules
layer - Providing data and logic for each view
- Managing the state of the application using context providers
- Handling routing and navigation between views
- Implementing global layouts and themes for the application
- Rendering the user interface using components from the
modules
layer - Handling user interactions and events within the views
- Communicating with the
modules
layer to fetch data and perform actions - Implementing business logic and application flow within the views
2. Structure of the views
Layer
- Small Project
- Large Project
src/
└── views/
├── Layout/ # Layout view
├── Error/ # Error view
├── Providers/ # Providers view
├── Home/ # Home view
├── Product/ # Product view
└── ... # Other views
src/
└── views/
├── Layout/ # Layout view
├── Error/ # Error view
├── Providers/ # Providers view
├── Home/ # Home view
| ├── Header/ # Header component
| └── Hero/ # Hero component
| ├── Navigation/ # Navigation component
| ├── Sidebar/ # Sidebar component
| ├── Content/ # Content component
| └── Footer/ # Footer component
├── About/ # About view
├── Dashboard/ # Dashboard view
├── Product/ # Product view
└── ... # Other views
3. Usage of the views
Layer
src/views/Product/index.tsx
import { ProductHeader } from "./Product-header";
import { ProductSidebar } from "./Product-sidebar";
import { ProductContent } from "./Product-content";
function Product() {
return (
<div>
<ProductHeader />
<ProductSidebar />
<ProductContent />
</div>
);
}
src/app/index.tsx
import { Product } from "@v/Product";
function App() {
return (
<div>
<Product />
</div>
);
}
4. Files in the views
Layer
The views
layer contains the following files:
Layout.tsx
: The main layout component for the application.Error.tsx
: The error view component for displaying error messages.Providers.tsx
: Context providers for managing global state.Home.tsx
: The home view component.Product.tsx
: The product view component.- ...: Other views.